Acala

Row

Acala Accounts Comparison

  • Acala-tokens Subquery accounts: 65600

  • Subscan accounts: 159252

  • API accounts (ignoring free balance): 158730

  • API accounts (free balance > 0): 154535

  • Overlap between Subquery and Subscan: 56294

  • Overlap between Subscan and API: 157667

From the above data it appears that the number of accounts being reported by Subscan is much closer to the number from the API. For the purposes of the stats page, getting the number of accounts from the API would take too long, so the quickest way is from Subscan. The acala-subql project is vastly under-reporting the number of accounts. The other issue with the acala-subql project is that all the related fields are NA for all observations, such as txCount and createAtBlockId.

Row

496 Accounts in API that are missing from Subscan

Showing first 50 observations…
id txCount createAtBlockId subquery balance subscan free api
211cVGaSR1CeXX46MkTdAiASiK7YpGJdEx7RYBV7JKbbZLpT NA NA NA NA NA 5166686119579 1
211h5igvFgyEUYhq613u6fdaVinrJHiyCQLYWa8FimD28jwH NA NA NA NA NA 4000000000000000 1
211mPJBJ5v7mnYybBVmw23UdcPMpeNPKtxgxxvgVRUuPbWxE NA NA 1 NA NA 116688397350753 1
2128U1AaYDmUmbb2XXeX6tkRKvEGUc1ej86opYJRmDKE6fQw NA NA NA NA NA 97881000000000 1
2129TZdXPmHTAhmniiQ71N9YCELxquoT3XmfRGPPaTnsCqhW NA NA 1 NA NA 264000000000000 1
212D5mL9FKcV4vZw531SXxpJJy5TtgzjHxm88fZK1DkXM35W NA NA 1 NA NA 1112047600000000 1
212NbHb8Ru5gVWeDQhM159JTELNbuuU7du5Exvda3ZnvAdeR NA NA 1 NA NA 1619000000000000 1
212QFor2ecUM32ptB4s7F9aYVgG6dsFDe81WKo8MntrSM2iY NA NA NA NA NA 3124999558000000 1
212S9MU8pvQ86q2Bx8fBePfSQNf2QU1gTQZLyM48Guv7JWwn NA NA NA NA NA 6000000000000 1
212ifkDLNN1c82zpvnnDLmBiTUs3XwYjnf3DhbcLHHWgaBPp NA NA NA NA NA 317847933800000 1
212junfwUbpsYuFE9Xt45Uf7539JMeYkCKjJ83YehYHmYBsm NA NA 1 NA NA 216377063420000 1
214uEgLd38p7DAGMhqBghgLHyeyTADmajr7s8DWdH6bdj4Ff NA NA 1 NA NA 3047620641502012 1
2152Fw6akVwB1zNG5oM7VHrgL3E6RE7qTiYS9tkwaptZBYk7 NA NA 1 NA NA 2074702874237650000 1
215BfeiT7DtQeNNDK46QtDPkKK3q7uCDvvGJDkq1W9HTdAfS NA NA NA NA NA 170915000000000 1
2171YCngpw7uXQd8sddTrmqk24f9jdKNe3NXWAtkHudGLSGT NA NA 1 NA NA 878488731326242 1
2171k77GR5NgVJkdPT6Hp5kAjCRQM7rMqgaRNjaVwWR6wEzP NA NA 1 NA NA 5326408986484 1
2176rhFFcLNzcEq6LZ8tf64r9j1iaTScEGxoSniQcyR5CqSx NA NA NA NA NA 3525000000000000 1
2179pttNmEHEwcQrJCv15Vjf2G2M5oKntpe95et535ApY8wT NA NA NA NA NA 3037500000000000000 1
217da5Tvb4Z1g7DdxSMFdFhXVzNxKb6FfemZRzHik2sEBqch NA NA 1 NA NA 56220000000000000 1
217dqBbvLRA7FkQgt1uUDsxzepYbGRLXhAQ297tNYScugDLp NA NA NA NA NA 54389060000000 1
217dyd1E44oKFfzAGed7taNo4gRP2PKWRqC1GrurniHG4Xaj NA NA NA NA NA 6308670830520000 1
217sEe5cHzT7DjyxwNVGM2YNNtDanKi8xtPNsroyLApr7eAn NA NA NA NA NA 7328517780000000 1
217vVa398d9ekbWBM88PySHkVYfd3hQoyFKDMUwFkDYjqdL1 NA NA NA NA NA 4843770656306 1
2184LPgRrKSEjEz8LfSPM8m1Sc7mdZ88oa1c5wGE9RUU16fk NA NA NA NA NA 6800000000000 1
219FysKPKkhvA5u9TBCx177c2pFkyoieYrEQygBkMcwZJotT NA NA NA NA NA 2285714286000000 1
219VhBriBM98GC49g2xAwH3MFnRMDQmQSF8ygoAZMuD2R2k3 NA NA 1 NA NA 4116799495711057272 1
21Avx1gnutPq7gFZBw4XqZyCJCP4RpPoSiM2hmdJGqdkMxF4 NA NA NA NA NA 147518862433 1
21BbAQRU9WkSbRmEAt76XTht55wYo7gyV9iDDzdkQocnpKyU NA NA NA NA NA 197529606580 1
21Bsx1is9KTHRcyZiDrJFj26mgzfRwBJ8oGcnbi83iXghtUV NA NA NA NA NA 940000000000 1
21BvX4aNKN5AtEtp8QqvVG7C2ZHQ4ZvexeAthH8pzubWgcsU NA NA NA NA NA 10000000000000 1
21CFxcCkTwimWdNXUrV5GddnDBf2aAGBRrLvPKQAV1mmJuec NA NA NA NA NA 6666666666000000000 1
21CaSvhcdLH8cLWQBDxFVacGRB69EGhUsJodff9idYxpABZx NA NA NA NA NA 2285714286000000 1
21Cdy5fZKrBv8baiyxFGTVQHn8FVruwhe3hc81FrYCsAanaR NA NA NA NA NA 5166686119579 1
21Cuw6E78jWDFe4S6xN7req9neYt43jGScSGLvc3vwogGDMU NA NA NA NA NA 1669131673144143730 1
21D24FJUcy8aPWLTJ4dTxtnSVsLUQLQMAAjQwCBGVLQaDwZx NA NA NA NA NA 2285714286000000 1
21DCU6tki6FHNReEcTRvv81dKLfB7n7yGqFmSKs5aApMEuCc NA NA NA NA NA 5328143851216 1
21EoZ8GpMiXuwVSgRHf25STmYjFHj1QaFJf1QJdK7hpEJyze NA NA NA NA NA 2285714286000000 1
21FKfi9yQT7XdV8uUfPDPQsMw5Q8CePWdqjCGH5ssxwsGgAD NA NA NA NA NA 2285714286000000 1
21FX773w1G8HuvCR63vhHRkQLVvvKyNxoM53HbqdsYJWpzPj NA NA NA NA NA 2499999999999999996 1
21FaT72aSdhJTSAqQfBtAqFNjLn6fgfodN2rkBMrkt8sjtLD NA NA NA NA NA 10000000000000 1
21Fjc9SeKZ1CyUU32XF1qk2hKgZPYxRyQLPtCuCGbQmVP3D4 NA NA NA NA NA 2285714286000000 1
21FqQ3xjwuHeH39R1ssJ7ZiVhdwSyRRpGperQz5geNpGwnz6 NA NA NA NA NA 4166666666666669994 1
21HjAiocKCYDzDb1D7MfNGqZY2ufPpHk484BMBVGuriC8rKL NA NA NA NA NA 3124999558000000 1
21J3wbGAS74BwZdJPhWDuzA82yaKhr7CGJe4R8ikLwxgPwVZ NA NA NA NA NA 2219917660000000 1
21JJKfyw9PGkQA64E42AWqaeFxsi21783P39299VUnkgDZoG NA NA NA NA NA 4843770656306 1
21L2D6whNqiuaLmEUrW5q9njhfLsytqaVSPYdhNpa6ncNzaZ NA NA NA NA NA 3550300230000 1
21Nb3f9EJPk2EWB2QBoRF95VNwsCr1PxiE457DgK1TK1TSbP NA NA NA NA NA 2285714286000000 1
21NgKokcLRyfG8iuAULB8AdhUYmEQDzp2bTZEk61bGHPaTkX NA NA NA NA NA 1997518864348 1
21NnXyUNp4fwap7JUCGHQ6LrASEayaiTz5DPVpF9DfYJGs4H NA NA 1 NA NA 5525273589880 1
21NvKhokVAY2FmjFAqmayRQXpVyhWWEaQ8kuWSAgDmbchKDx NA NA NA NA NA 3535714285999998 1

Row

1585 Accounts in Subscan that are missing from the API

Showing first 50 observations…
id txCount createAtBlockId subquery balance subscan free api
211VmK62K1cNn9B9uzFMp7vJvshPN1KhbFqcSbVPbnWzDMY5 NA NA 1 600.0000 1 NA NA
211X5VqhKSqK8QsjS6Kq5gd8zAxpd3a3Kx2ccnUpM9za3RGv NA NA NA 850.9800 1 NA NA
211XmfKz1VVr2zwnMuRYZm7GatXh2dfM7iYPxdyQaBp9uXxM NA NA NA 771.8778 1 NA NA
211YVnigUf6P9hAWNj2crLskTbYqMpThzLvxgEtqVvnBXhSL NA NA NA 832.0000 1 NA NA
211ZPxjHWREtDG411uxqJtycvPSBnfFbHoo66jmi59oBverg NA NA NA 2921.0000 1 NA NA
211cNTwSQfYttcsDMKcJNquawzrQiUGvNwGT6jdy21LXdqnV NA NA NA 1096.0000 1 NA NA
211cvSFzmEfRQTnTU2KjRVQvyJ81jivNHnSQ1mqse5L4k1JM NA NA 1 762.5000 1 NA NA
211fMtCp1LTXNQx9Xx9qUfsAf4qtZFw4UoFwRW6QxqkTfiyq NA NA 1 1535.2876 1 NA NA
211fNxrQ66P8rkvcDzW9rVoA6n77K6LFqQoQDpqoaVRzXcXF NA NA 1 836.8768 1 NA NA
211hVmydubNCmCzzdBmk1niGxoo83gjvnaFV2q1QdUQsDbtB NA NA NA 833.2000 1 NA NA
211jHSP7c7V3gABiEa27p5iwQ8yAyGWZPSyWXTVhMPZEswSb NA NA NA 761.0000 1 NA NA
211qreN25tjiUGw8ebgb8kBfyeBZQjCALic7TTycaJ2pad5R NA NA NA 1664.0000 1 NA NA
211uqNQT75k52satj4fL3DdpsohGyLcE196Mw437isnYQqKy NA NA NA 562.0000 1 NA NA
211v141HY8HASXkCCHGi6SQQT4iHJZRngsRaCa68ghe9ePvP NA NA 1 377.5000 1 NA NA
211vR993kNHzt1QKzGT4r7KetLjVjeCGwbaUQaSC4Z9UEwJd NA NA NA 1972.0000 1 NA NA
211w8sEnVauovCp35ELPDNJEiTBXNraFw6tHaSRuRLTBKGTc NA NA 1 3082.0000 1 NA NA
211x5e2oajrFKkWGvJLdpf1wXuMC6NLA8idLbouHYdEefpRC NA NA NA 1523.0000 1 NA NA
211xENFCY3f4wQjmAM8Nntk4UohKrCzQgVxCEa55PXGF3hL5 NA NA NA 676.4664 1 NA NA
211xWqHPBJErtxmRaNjx3Ae1Gutfpc6cEF2Bg6vjH28CepYd NA NA NA 4684.0000 1 NA NA
2125d1xm1W432XZaFZ3rohRG3E3Xrt6gMc2fDKXnJ9WKCX8z NA NA 1 4577.4325 1 NA NA
2126Htyrc4bsC7FiKNybaheXV3Es9Ctow2C5WWiMTZUFGq5Z NA NA 1 1195.8776 1 NA NA
2127yReCkywsN8iSrpQhy1GKsnSUb3P2vT8WimunrmzUhFjc NA NA NA 618.0000 1 NA NA
2128TPo4sicA5ymi5A19KwG26bh9JCfhDXThQAGHTsqsAFTD NA NA 1 673.8957 1 NA NA
2128gnx57bBAkZWY3XYsQC6wx25gVw4mNoivkKd5y1NM2inn NA NA NA 1515.0000 1 NA NA
2128hq616o2QtQQf98dJE7U6KJdZCBqt9oFhcqeiCTDLaSxm NA NA 1 680.0000 1 NA NA
212A2zphCAeVcL6R7F4mctQusGjKrHYEtKqVgi1BuHC422nH NA NA NA 836.0000 1 NA NA
212BxJTBPHLHYkK3ggCFJXxFQGDeJKnKKpnFgkoj53QoquZc NA NA NA 462.0000 1 NA NA
212FRbXbUQnRZqvzcKQhmKncnNsHhFrBgezwqzu9EmQwNDZo NA NA 1 1516.0000 1 NA NA
212JgfuDNirwjHR1tqQu9TbRm1v4CGp44pmi6CuHs1w6E3uU NA NA NA 1524.0000 1 NA NA
212JhUrkHAKMTQzHzuWufGNP2hWE8fQXRo69xwX6G1oomTmn NA NA 1 1224.0000 1 NA NA
212LLC33fWxAGEjPMP5XDGzSV9yAtJz67NUSj8PH5HVrduB7 NA NA NA 839.3852 1 NA NA
212LsatnXWRsxkLXVPRiU23aLpuZQd8q2pnVpnkCN3D46x4C NA NA NA 3062.0000 1 NA NA
212P6rFBJgMv8y6979NHaFgH6duGFkVe4hchRGugPekgDWqY NA NA 1 761.0148 1 NA NA
212P8ZrnX2jXzqfxC22WJnUj17EEFiytDXj1BnRkCdFt3phy NA NA NA 2456.1853 1 NA NA
212PZ1C2hWPsYQJbUoVRbKWDYbxAGLwFbXSqvAxhoYvgq333 NA NA NA 2312.9000 1 NA NA
212S9wrWKQM9YjsLAxE8ryrztL2gM7oThWDSsYLrE8C5jnPm NA NA 1 1437.2748 1 NA NA
212VaVFr3KZ4SYs1DKTEW7Gq8YKEe5veJ2Ge19Ro7VqAAcsE NA NA 1 1531.0000 1 NA NA
212WkG3KBpwLeN32jqkJB41BKFwcUJQo3LBDRvGbdqb76qtA NA NA 1 1524.1457 1 NA NA
212ZDLUKBcJg8xFnnKT3LsG6Y9zUomjJbfxtJRKafLLNJ1wt NA NA 1 2379.8037 1 NA NA
212bHDHndgUEZc9mb6Mff96VZPvTLDkbHLtCtHTbiLhYpGZP NA NA 1 4500.7897 1 NA NA
212bysgExSMY62qguEEz3JDsmHjVsCejP4n8ogggFk8riRAq NA NA NA 3318.0000 1 NA NA
212dxciq9Xe76JVg4gwKrwY4TB1zoCX8ctacWdNDYtfFw5hB NA NA NA 789.0000 1 NA NA
212fLNVxPSZfeGpEKX2GsUCEH4khWk6KECu13WVBkw9yJDF9 NA NA NA 1530.0000 1 NA NA
212iJH2vSHkr85Fa6mEJhoD4uvgdPscGYGz5FQeGqSahxjSP NA NA 1 1427.1556 1 NA NA
212jNJW9MyHembM2jhk2VjBPrwwmKEYtGeL6UfB4QALbzSU7 NA NA NA 1632.0000 1 NA NA
212mP57okqrfWDueHJeyj6uoBrhfPFxwbRH9TWgJyBpigiEh NA NA NA 1022.0000 1 NA NA
212mk2t3kcEM5kxLWGPo7WfYnrf3F5XukT93hap8tcEFH2eg NA NA 1 2203.0000 1 NA NA
214AdYMcaQFicgWgCtbR5hkJunHGnhiNGyB4cM98qPeVyQce NA NA 1 343.9383 1 NA NA
214BQdAG19mr4VNEaKPYxwceSmHWZSgzzN5ex8LHVJVVVENK NA NA NA 833.0000 1 NA NA
214C8FANMhzHddJbjGibVpWQaYiXg1KcPQx6Yv3xi74hsaUH NA NA NA 4336.9120 1 NA NA

Karura

Row

Karura Accounts Comparison

  • Karura-tokens Subquery accounts: 76232

  • Subscan accounts: 79599

  • API accounts (ignoring free balance): 70269

  • API accounts (free balance > 0): 70269

  • Overlap between Subquery and API: 45017

  • Overlap between Subscan and API: 70107

Similar to Acala Network, the acala-subql project for Karura Network seems to have a poor overlap with the accounts reported by the API, whereas Subscan has 100% overlap (all the accounts reported by the API are also reported by Subscan – Subscan is showing some extra accounts as well!).

Row

162 Accounts in API that are missing from Subscan

Showing first 50 observations…
id txCount createAtBlockId subquery balance subscan free api
oPsbM14CTVWmGPeYVBwPaiYtAfFybh1UJspQCpMWGuKLV26 NA NA 1 NA NA 62213018773958215 1
oSB4gM5tSQqSnQhpPC9JAvpNHj5uJqVW2sWq9CNPXdFQUmA NA NA NA NA NA 312499955800000 1
oYeHK6AauBytaHpe1woAtpgHKffmaMUExjwdcnkPsi4dBav NA NA NA NA NA 312499955800000 1
obmvFLKbtkyBSoSY4agQx1xCxVGts6yVS6QiwPrxevNxE7f NA NA 1 NA NA 235097412078087549 1
ocngE93Af2Vn6zJqffud6ifkKKzUPqymp6xLraAP39TeGrk NA NA NA NA NA 312499955800000 1
ocwSd7whMyKCWZbfnj2Wq6vvDNSTo193yEf9x7ZZJankGMn NA NA NA NA NA 666666666600000000 1
ofa5zZWmYshUeXwZU112pUortyDuQK7krXnQBMjFWaxrL7E NA NA NA NA NA 65378839623440000 1
ogCb7y8EgNqboPVGzAeXdDZ3XeLDc7vRTxn4EZ2wq7YGLHQ NA NA NA NA NA 249999999999999600 1
ogWt4swBKYBxvLVCp7FMmBeQfers4AmtwYbBco5ifdJP6i5 NA NA NA NA NA 416666666666666598 1
ooQZWr6csCYHFgP7r5ii5pQoMUkviiqhvTVRW7dDsSs6eS4 NA NA NA NA NA 53734951250000040 1
orAELuTR9c4YAPFrXg4qvFbJ92xbLtBumSHmFg3MnknWuV8 NA NA NA NA NA 312500042100000 1
othJpZJ373YTGue6hr3EqqNFXyCL5NmKVrLo5godJWAruNu NA NA 1 NA NA 2858375442220979349 1
owVNfg2xSry3HDkZ5xqdFWvyQV6D6tDznmWU6W59WNGUubN NA NA NA NA NA 506250000000000000 1
ozgD43zMb6sMvv2ZJDe5CR4ZaRgofiz8EWQyV77xPfPTWnU NA NA 1 NA NA 54440317490874394 1
ozkcxD9KahG676yPG5mWJ7LhZv67sQTXN7v2D95u6fYhN1h NA NA 1 NA NA 136516712375516432 1
p2YRmYuXgQP2oMhZikjz1MGTwbCnPMGiUWQtXjmU8NLFf65 NA NA NA NA NA 312499955800000 1
p3QKXVUGYx9uTYBrUnaoZ42zbi1PDV3BPjdgnaXfDMokqph NA NA NA NA NA 2000000000000000 1
p5CgXHUxXBwmLaYvGfDerpAZcYmtWptqvUNKFd6mnjQ39Ej NA NA NA NA NA 71836548589839597 1
p5KLUsbZsrax9HiohhQkLhio5STbiz5Q7GJtSxbsjfCCeNY NA NA NA NA NA 312499955800000 1
p5oAZPAGK7fmrnmScKpLSdeNstatA6cEWkXL9mVeTWFY94R NA NA 1 NA NA 3628263303086 1
pDLwu5WwrUzm486DXnLk7ANxrQ5gbGKa3pb9rUH2D5HTQ1r NA NA 1 NA NA 110500992173084473 1
pDMGWQhyUNJjFzvZj5xL81BDQ4C4TuamvAtYLav69Rx45FD NA NA NA NA NA 312499955800000 1
pG42rwBm136p7d6mcFSMcMe5G1q8A89fio3nm54PvvNYaX6 NA NA NA NA NA 166666666666666998 1
pMYhR86KkDjQ2FXZ3Zp1ePDJYsAgrCxFrkNuRJtYUiyLqvD NA NA NA NA NA 311965360600000 1
pRwVBDCMSyR6H8LK3BxyhsgC4UVXLJ5Nuv4fpAcZ2876pg1 NA NA NA NA NA 10000000000000 1
paQfqyYneVZDdGNRYUxAb8BY7CNBpd97ZFYxnn16K3RUHmF NA NA 1 NA NA 800000997796187298 1
pasBnuLX7t2Jxm3gLjoSidsrWxxcEc9KmGj3RZ94VpAPqwi NA NA NA NA NA 199999999999584000 1
pazZpYZEPEAaxkVeXSrBnvXEfvKr1fx7AYsKsbuQrasZ5tk NA NA NA NA NA 311965360600000 1
pbhqixm7NMYeJb4M7DXVuvYwKqM8hsSnJ1AdmwmYvtjs4UY NA NA NA NA NA 100529998727 1
pco5rDrg3uZ8ZQDUrHdxH7d1frK3VuesgrSFkxX4fqYerdF NA NA 1 NA NA 500002283477684785 1
pd4FdWoDt4SSMraJWSAbuCkFGWtghieX4kA7kvsTTj6HBT2 NA NA NA NA NA 312500042100000 1
pdAm9zfa6vuEP445eYC9azGLexvegL6RbE6QmG934XyxZAt NA NA NA NA NA 311965360600000 1
pfYJDonCrZvQFL63BbngY29FddCQb62nVV6uqQuohb4U1cm NA NA NA NA NA 312499955800000 1
pfd5umSFib7rYssG5nBCpqA9UVdqodcaAMp5Q54bb1jhnva NA NA 1 NA NA 55962066171275859 1
pfepQoWMRxVBj8vUU22n2RQTF6C8HZPfv2bBWgtJ1VzDZP1 NA NA NA NA NA 506250000000000000 1
pfinc1fiRUuBRSDjUXVDXS45peb1J9hSFXStry6CYwkjDk8 NA NA NA NA NA 866666666666667000 1
pfkbFBvtuT42PdnE815sKQVZHnAMNi2FMQUgLyPkkHXHGVK NA NA NA NA NA 312499955800000 1
pfrPxL9AUUnJDTyYhahK9UGeMJwEXZAUJvfSXJckLpZyCRi NA NA 1 NA NA 911270991790954909 1
phu3Gvzk8gUbsYsuEWfErbeLvqHUsh1rwiix1NrmpRFC6oB NA NA NA NA NA 312500042100000 1
pkd11jZJe69tZizRxjvmQtz4akUbyBRfgP6gbnAs4vrkiqC NA NA NA NA NA 312500042100000 1
pndshZqDAC9GutDvv7LzhGhgWeGv5YX9puFA8xDidHXCyjd NA NA 1 NA NA 3105042671149153740 1
pp2Yjp5FzWxgE7HHrJCugqZQ11inyBMTT5tNb6q3ay9QtsQ NA NA NA NA NA 2666666666666670000 1
pqkAMaENhqLR9uRG3s6T93fFuCZv57RHhnh5iB8Nvkfz3jW NA NA 1 NA NA 2545452222415162356 1
q4cp1UJP5c1SDKvj6N5YvgdvULKTENqMpew5ZXZ3mLZkxfn NA NA NA NA NA 312499955800000 1
qAPjY6snSERgQwn4P9pzpFEA3RGaz5LZQy8n1YnPjnKjoC7 NA NA 1 NA NA 1153845149316126330 1
qDAsEMpYMTJk3RQgZ2ZqP7qQ5G8r52yrwoxdN3aTERFWwzD NA NA NA NA NA 312499955800000 1
qFy88MSPUpL8NmzzXmDrrVmPBAN4Mf1GqGbKPtTwPdUHLa6 NA NA NA NA NA 311965360600000 1
qJU6ZiiFgLEAb89bBNoSQCd7KV42Gcx9xu7cZGgmth2a5hH NA NA NA NA NA 10614710000000 1
qLMT3mzMDUAwatyqnXPBCk2yPmsPM6jfSeyqTZTZPSNqf96 NA NA 1 NA NA 2390000890085710261 1
qLUh6L7RiULqQHc2qjhaRiwUEYS5UAUJrQuyJVJ5sKD2s3B NA NA NA NA NA 230769226923076900 1

Row

9492 Accounts in Subscan that are missing from the API

Showing first 50 observations…
id txCount createAtBlockId subquery balance subscan free api
oJL9eVTsKnLshMBPXfNZSeEbe64c2A4kkvo8hnSQ7mjcUbU NA NA 1 0.2 1 NA NA
oJLex8b6PJ1sCckW2kwfJdLAvPSWvMnXsgLPFgapzV4kCdj NA NA NA 0.2 1 NA NA
oJLjqfLmiJQ3h56dVwRohKwjj3eehHSiY8rer4gVz4yaemP NA NA NA 0.2 1 NA NA
oJMeM8kkNFMaEdCwr4MkgVyt8TjQucY42nz6TRP9HPcat8H NA NA NA 0.2 1 NA NA
oJPqJKpyWBsv4qEE1r2TUPwB4ChBa9euY2q7rW4FhBdDo57 NA NA NA 0.2 1 NA NA
oJR65JSjzLu8hoCRqDcggVUuTYtEdm3L3trj9Sp1WPVUZgL NA NA 1 0.2 1 NA NA
oJSfJyQZzod3KERDuCQRg6f2uHu3xvfByuZ6wrHw5wW1bWa NA NA NA 0.2 1 NA NA
oJTVw4wsH2W35c9PtF2i35E7ktkMoN2GUVcfkK521WxMTcr NA NA NA 0.2 1 NA NA
oJU6syupa8nT1aRyp2iWRLgXpXzHm25kEhaXq3cXZQCJTxL NA NA NA 0.2 1 NA NA
oJVNrjLbU6Kvc2W7jsf5pDQwpKUGBgpvRgPiV3CUN4MjhNS NA NA NA 0.2 1 NA NA
oJWB59M2MYvL1JourMxcj1tyKBLhJPHtftxT1FTaKFsMEwS NA NA NA 0.2 1 NA NA
oJWPL2Yp7o9X2e5cSqLJjqc5qi4zdXborw7FN3ZSKWYyXTm NA NA NA 0.2 1 NA NA
oJY6oV4kZeGxekU8HnvrTHoSPqDcBvwvFiPUGaj5h3sX6JM NA NA 1 0.2 1 NA NA
oJZY1NsSaV8ipCXGqgwVB9xLDrhAPUfQ6pGN1n1kE5prNJN NA NA NA 0.2 1 NA NA
oJZbbtztRz3ZDdEuRVLbu1Jhp2nDcXrBNbnxDqUcSsKzfF9 NA NA NA 0.2 1 NA NA
oJb3kRrQ6zo9sGMtkyBSrAhHBXvgU7wBqTPPeQaKWm92wDW NA NA NA 0.2 1 NA NA
oJjNgCBqwps9cZXDavVDnNRh2TKkC8Ew8Zcc7jSvj2fEauE NA NA NA 0.2 1 NA NA
oJkxuXqv5QnF8AnTyQ4kWZVbD8JnpR8mhST9Z9sBM5t2DSG NA NA NA 0.2 1 NA NA
oJmG3me8uFUq4rzRkSR9wH136n2KzTxFLiCa9CQN5fqHecu NA NA NA 0.2 1 NA NA
oJmawdyikx7r9b79rZ8TobB5vjBYMSBSSs5TGjfQFZPqaah NA NA 1 0.2 1 NA NA
oJngbtb7Y2QSTXoNfyxmRqmLvkCvAxQ1JmzMmmqHXrpLFWr NA NA NA 0.2 1 NA NA
oJohPL2Dyr4XW9xsJJ9rSGHqEaNA23uY24drbm6zfR63L9G NA NA NA 0.2 1 NA NA
oJpdvzA2k7R133RcKVboiyVUmaVPgEAQo34u9wmtMYNEFra NA NA NA 0.2 1 NA NA
oJqms6E6MJuJFuft1nxDecCqMWPyodNFWVHgFWqyxhTg4f2 NA NA 1 0.2 1 NA NA
oJqwqeo2E8q4iYTpx6pReWoHW8NiRv6JUM3XKjCzzkm87xX NA NA NA 0.2 1 NA NA
oJsqvBv8NGnwT5xEybjEALDDNEGczvgdp36wqkNMrjKCDXK NA NA NA 0.2 1 NA NA
oJtPYu9kqAr1sFBpWnXPT2sSePsAT2KMGE7iGqKNSkNJjy3 NA NA NA 0.2 1 NA NA
oJv8Qf4ADNE9NnmdD5C4xwBs5QmBpaSAUjUfUCSxhno7Mmz NA NA NA 0.2 1 NA NA
oJwqPBfFgNBEQXU1GGZBWwa4j6gqTZnYnavYGaGZhEFMNQj NA NA NA 0.2 1 NA NA
oJwzZK7aCw999rsYZUtLurGQ1CciqqUb9sFSFLjV7omFF15 NA NA 1 0.2 1 NA NA
oJxS512xmfZFaYAkW5MA3wxWhZPvgmJuczZ3DiwMh5CZsgT NA NA NA 0.2 1 NA NA
oJz7wpedYTB9ZUVLYcD5B3MHmNZEhqpTwCkfpHs74BEwJrA NA NA NA 0.2 1 NA NA
oK1cfsLYNTaRb8GtJ6yjbHqXuUGZgJirqN5kQ9d7G8zLTdd NA NA 1 0.2 1 NA NA
oK1drvwDJYTJ1GRddeTVM1y4S4rRznc4FNYtTriEPtHKB8m NA NA 1 0.2 1 NA NA
oK6DLJUbw49Fwz5BCNoXAtgWkbUGRFR4omt9irS352NVGD4 NA NA NA 0.2 1 NA NA
oK7no6xrejzeCBgnWh2tmGMxabERmvR4GsNEWESaSfpWfkB NA NA NA 0.2 1 NA NA
oK8MJszpSiqbUHuvLK6vETyxGfenBgXQasB4c6GXR8umVEH NA NA 1 0.2 1 NA NA
oK9vx9CHJQZriHhV2Ujss5eNEMPNkD6NV9eeZuM2v5rhR14 NA NA NA 0.2 1 NA NA
oKAjd4uAvDaSARygDJwkUbZAJmzn2nLeTQwA1pJttRmeZ8k NA NA 1 0.2 1 NA NA
oKBYNvt2ez8yS272iBKxDCFXnA4y9iVjwT6N7yAEjKWmMFn NA NA 1 0.2 1 NA NA
oKDvhV9so4WwiBM7CRe8iiUTJZFMX5ouZsYbtPr73CLpW71 NA NA NA 0.2 1 NA NA
oKE3UeJbtiW8aYNcoyFcjj4CW98rGLZziEBTaBD69T1YsR6 NA NA NA 0.2 1 NA NA
oKGLz7J9wpHXh1V3PyWypq6JKEsshzRhMEyeiVSyLMWkyGj NA NA NA 0.2 1 NA NA
oKLNRbMxeKpVaJjbK7QFwpu93Xcggp3NvVLoQ6KRXz5gn67 NA NA NA 0.2 1 NA NA
oKLfLUx4bQTKgA8EzBCWpaTLim6Eho1BuqZVGfURUZDwxCG NA NA NA 0.2 1 NA NA
oKMBNLFYvMrxJYD9sweJkXeZjH9mjT2FMJeFCMLmaouDjNV NA NA NA 0.2 1 NA NA
oKMqTBFXrUJtFwfZAfN7XgdJn2oyXSBac61PCgrYYSvDeva NA NA NA 0.2 1 NA NA
oKNt3EkJ8vmZCnoUMQz6FpC5rbf6vGJNzFEcVWXvex6KVJo NA NA NA 0.2 1 NA NA
oKU6qCj9caTmbo8jmTrfGySLZXvF3BiZ1QRLTVehrZnkubA NA NA 1 0.2 1 NA NA
oKUSHnm9Gd3La24ixU1oSvG4oTpdC4YWTXzfLkfL7XD9HVw NA NA NA 0.2 1 NA NA
---
title: "Acala / Karura Token Dashboard"
output:
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: scroll
    social: menu
    source_code: embed
---

```{css custom1, echo=FALSE}
.dataTables_scrollBody {
    max-height: 100% !important;
}
```

```{r global, include=FALSE}
# web3.py
# eth95.dev
library(knitr)
knitr::opts_chunk$set(
  message = FALSE,
  warning = FALSE,
  comment = "#>"
)

library(dygraphs)
library(kableExtra)
library(formattable)
library(lubridate)
library(flexdashboard)
library(DT)
library(subscanr)
library(ghql)
x <- GraphqlClient$new()

# Helper function to concat
`%+%` <- function(a, b) paste0(a, b)

library(reticulate)
```

```{python, include=FALSE}
from substrateinterface import SubstrateInterface

from datetime import datetime
import pandas as pd
import numpy as np
from datetime import date
from pprint import pprint

Karura = 'wss://karura.polkawallet.io'
Acala = 'wss://acala-rpc-0.aca-api.network'
            
def get_accounts(network):
    if network == "Acala":
        url = Acala
    else:
        url = Karura
        
    fname = f"{network}_accounts.csv"
    substrate = SubstrateInterface(url)
    result = substrate.query_map('System', 'Account')

    data = []
    for res in result:
        # res = result[0]    
        # print(f"Free balance of account '{account.value}': {account_info.value['data']['free']}")
        acct = res[0].value
        free = res[1].value['data']['free']
        outi = {"account": acct, "free": free} 
        data.append(outi) 
        
    out = pd.DataFrame(data)           
    out.to_csv(fname, mode = "w", index = False, header = True)

# get_accounts("Acala")
# get_accounts("Karura")

```

```{r tokens, cache = TRUE, include=FALSE}

# accounts_sq <- getAccounts_acala('Acala', window = 1, filter = '', endpage = 2000)
# fwrite(accounts_sq, file = "accounts_sq.csv")
# accounts_ss <- get_subscan_accounts('Acala', nobs = 2000000, start_page = 1)
# fwrite(accounts_ss, file = "accounts_ss.csv")

# karura_accounts_sq <- getAccounts_acala('Karura', window = 1, filter = '', endpage = 2000)
# fwrite(karura_accounts_sq, file = "karura_accounts_sq.csv")
# karura_accounts_ss <- get_subscan_accounts('Karura', nobs = 2000000, start_page = 1)
# fwrite(karura_accounts_ss, file = "karura_accounts_ss.csv")

# Acala data
accounts_api <- fread(file = "~/Python_HOME/Acala_accounts.csv")
accounts_api[, api := 1]

accounts_sq <- fread(file = "~/R_HOME/subscanr/accounts_sq.csv")
accounts_sq[, subquery := 1]

accounts_ss <- fread(file = "~/R_HOME/subscanr/Acala_accounts2.csv", fill = TRUE)
accounts_ss[, subscan := 1]
accounts_ss <- accounts_ss[list.address != '', .(list.address, list.balance, subscan)] %>%
  setnames(c("id", "balance", "subscan"))

both <- merge(accounts_sq, accounts_ss, by = "id", all = TRUE)
both <- merge(both, 
              accounts_api,
              by.x = "id",
              by.y = "account",
              all = TRUE)

# Karura data
karura_accounts_api <- fread(file = "~/Python_HOME/Karura_accounts.csv")
karura_accounts_api[, api := 1]

karura_accounts_sq <- fread(file = "~/R_HOME/subscanr/karura_accounts_sq.csv")
karura_accounts_sq[, subquery := 1]

karura_accounts_ss <- fread(file = "~/R_HOME/subscanr/Karura_accounts2.csv", fill = TRUE)
karura_accounts_ss[, subscan := 1]

karura_accounts_ss <- karura_accounts_ss[list.address != '', .(list.address, list.balance, subscan)] %>%
  setnames(c("id", "balance", "subscan"))

karura_both <- merge(karura_accounts_sq, karura_accounts_ss, by = "id", all = TRUE)
karura_both <- merge(karura_both, 
                     karura_accounts_api[free > 0],
                     by.x = "id",
                     by.y = "account",
                     all = TRUE)

```

# Acala {.tabset}

Row
----

### Acala Accounts Comparison

* Acala-tokens Subquery accounts: `r both[subquery == 1, .N]`

* Subscan accounts: `r both[subscan == 1, .N]`

* API accounts (ignoring free balance): `r both[api == 1, .N]`

* API accounts (free balance > 0): `r both[free > 0 & api == 1, .N]`

* Overlap between Subquery and Subscan: `r both[subquery == 1 & subscan == 1, .N]`

* Overlap between Subscan and API: `r both[api == 1 & subscan == 1, .N]`

From the above data it appears that the number of accounts being reported by Subscan is much closer to the number from the API.  For the purposes of the stats page, getting the number of accounts from the API would take too long, so the quickest way is from Subscan.  The acala-subql project is vastly under-reporting the number of accounts.  The other issue with the acala-subql project is that all the related fields are NA for all observations, such as *txCount* and *createAtBlockId*.

Row
----

### `r both[free > 0 & api == 1 & is.na(subscan), .N]` Accounts in API that are missing from Subscan

Showing first 50 observations...
```{r acala1}

knitr::kable(head(both[free > 0 & api == 1 & is.na(subscan)], 50), escape = FALSE) %>%
  kable_styling()

```


Row
----

### `r both[is.na(api) & subscan == 1, .N]` Accounts in Subscan that are missing from the API

Showing first 50 observations...
```{r acala2}

knitr::kable(head(both[is.na(api) & subscan == 1], 50), escape = FALSE) %>%
  kable_styling()

```

# Karura {.tabset}

Row
----

### Karura Accounts Comparison

* Karura-tokens Subquery accounts: `r karura_both[subquery == 1, .N]`

* Subscan accounts: `r karura_both[subscan == 1, .N]`

* API accounts (ignoring free balance): `r karura_both[api == 1, .N]`

* API accounts (free balance > 0): `r karura_both[free > 0 & api == 1, .N]`

* Overlap between Subquery and API: `r karura_both[subquery == 1 & api == 1, .N]`

* Overlap between Subscan and API: `r karura_both[api == 1 & subscan == 1, .N]`

Similar to Acala Network, the acala-subql project for Karura Network seems to have a poor overlap with the accounts reported by the API, whereas Subscan has 100% overlap (all the accounts reported by the API are also reported by Subscan -- Subscan is showing some extra accounts as well!).  

Row
----

### `r karura_both[free > 0 & api == 1 & is.na(subscan), .N]` Accounts in API that are missing from Subscan

Showing first 50 observations...
```{r karura1}

knitr::kable(head(karura_both[free > 0 & api == 1 & is.na(subscan)], 50), escape = FALSE) %>%
  kable_styling()

```


Row
----

### `r karura_both[is.na(api) & subscan == 1, .N]` Accounts in Subscan that are missing from the API

Showing first 50 observations...
```{r karura2}

knitr::kable(head(karura_both[is.na(api) & subscan == 1], 50), escape = FALSE) %>%
  kable_styling()

```